//package com.ruipengkj.commons.util.DBDump;
//
//import java.io.BufferedReader;
//import java.io.FileInputStream;
//import java.io.InputStreamReader;
//import java.sql.Connection;
//import java.sql.SQLException;
//import java.sql.Statement;
//import java.util.ArrayList;
//import java.util.List;
//
//import org.xmlpull.v1.XmlPullParser;
//import org.xmlpull.v1.XmlPullParserFactory;
//
//import com.ruidom.Com.Transform.Util.DataMeta;
//import com.ruidom.Com.Transform.Util.Updater;
//import com.ruidom.Com.Transform.Util.XMLDataLoaderListener;
//import com.ruipengkj.jdbc.ConnectionNetWork;
//
///**
// * Created with IntelliJ IDEA.
// * User: Administrator
// * Date: 12-5-16
// * Time: 上午12:11
// * To change this template use File | Settings | File Templates.
// */
//public class XMLDataLoader
//{
//    private XMLDataLoaderListener listener;
//
//    public XMLDataLoader(XMLDataLoaderListener listener) {
//        this.listener = listener;
//    }
//
//    public boolean load(Connection _conn, XmlPullParser xpp) throws SQLException, Exception
//    {
//        List<String> cols = new ArrayList<String>();
//        Connection conn = _conn;
//        conn.setAutoCommit(false);
//        Statement stmt = null;
//        List<String> loadedObjClasses = new ArrayList<String>();
//        try
//        {
//            int xppType = xpp.getEventType();
//            stmt = conn.createStatement();
//            stmt.execute("set @isDBSyn:=1");//开始更新
//            while (xppType != XmlPullParser.END_DOCUMENT)
//            {
//                if(xppType == XmlPullParser.START_TAG && xpp.getName().equalsIgnoreCase("package"))
//                {
//                }
//                else if(xppType == XmlPullParser.START_TAG && xpp.getName().equalsIgnoreCase("table"))
//                {
//                    String tableName = xpp.getAttributeValue(XmlPullParser.NO_NAMESPACE, "name");
//                    String keyCol = XMLDataExport.tableKeys().get(tableName);
////                    String keyCol = XMLDataExport.tableKeys.get(tableName);
//                    if(keyCol == null)//防止非法更新其它表
//                    {
//                        throw new Exception("非法对象更新:" + tableName);
//                    }
//                    DataMeta tometa = Updater.meta(conn, tableName);
//                    System.out.println(tableName+"-----------"+keyCol);
//                    new XMLObjDataLoader(conn, tableName, tometa, keyCol, true).load(xpp, cols);
//                    loadedObjClasses.add(tableName);
//                }
//                xpp.next();
//                xppType = xpp.getEventType();
//            }
//            conn.commit();
//
//            if(listener != null)
//            {
//                for(int i = 0, c = loadedObjClasses.size(); i < c; i ++)
//                {
//                    listener.onLoad(loadedObjClasses.get(i));
//                }
//            }
//            return true;
//        }
//        catch (Throwable _e)
//        {
//            if(conn != null)
//                conn.rollback();
//            throw new Exception(_e);
//        }
//        finally
//        {
//            if (conn != null)
//            {
//                if(stmt != null)
//                {
//                    stmt.execute("set @isDBSyn:=null");
//                    stmt.close();
//                }
//                conn.setAutoCommit(true);
//            }
//        }
//    }
//
//    public static void main(String[] args)
//    {
//        try {
//            XmlPullParser xpp = null;
//            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//            factory.setNamespaceAware(true);
//            xpp = factory.newPullParser();
//            BufferedReader breader = new BufferedReader(new InputStreamReader(new FileInputStream("test.xml")), 1024 * 2);
//            xpp.setInput(breader);
////            Connection conn = DBHelper.GetInstance().getConnection();
//            Connection conn = new ConnectionNetWork().getConnection();
//            new XMLDataLoader(null).load(conn, xpp);
//            conn.close();
//            breader.close();
//        }
//        catch (Exception e)
//        {
//            e.printStackTrace();
//        }
//    }
//}
